home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / rjcom.exe / INT_14.H < prev    next >
C/C++ Source or Header  |  1991-09-19  |  8KB  |  173 lines

  1. /**************************************************************************************************
  2. *
  3. *    Title:    INT_14.H
  4. *
  5. *    This is an include file for prototypes and value definitions with regard to serial
  6. *    communications.  The serial functions can be accessed in two ways:
  7. *
  8. *    (1)    The file is linked with CCOM.OBJ which accesses the serial ports directly.
  9. *
  10. *    (2)     The file is linked with INT_14.OBJ which accesses the serial ports indirectly
  11. *             through INT-14.  Prior to running the finished executable, the user must run
  12. *        the COM_TSR.COM serial driver which replaces and extends the standard INT-14
  13. *        functions.
  14. *
  15. **************************************************************************************************/
  16.  
  17. #define    _INT_14_H_
  18.  
  19.  
  20. /**************************************************************************************************
  21. *
  22. *            Function calling parameter definitions
  23. *
  24. **************************************************************************************************/
  25.  
  26. #define    COM1        0    /* Defines the first serial port */
  27. #define    COM2        1    /* Defines the second serial port */
  28. #define    COM3        2    /* Defines the third serial port */
  29. #define    COM4        3    /* Defines the fourth serial port */
  30. #define    COM5        4    /* Defines the fifth serial port */
  31. #define    COM6        5    /* Defines the sixth serial port */
  32. #define    COM7        6    /* Defines the seventh serial port */
  33. #define    COM8        7    /* Defines the eighth serial port */
  34.  
  35. #define    LENGTH8        8    /* Defines an 8-bit data character */
  36. #define    LENGTH7        7    /* Defines a 7-bit data character */
  37. #define    LENGTH6        6    /* Defines a 6-bit data character */
  38. #define    LENGTH5        5    /* Defines a 5-bit data character */
  39.  
  40. #define    ONE_STOP_BIT    1    /* Defines a single stop bit */
  41. #define    TWO_STOP_BIT    2    /* Defines two stop bits */
  42.  
  43. #define    NO_PARITY    0    /* Defines a no parity transmission/reception */
  44. #define    ODD_PARITY    1    /* Defines an odd parity transmission/reception */
  45. #define    EVEN_PARITY    2    /* Defines an even parity transmission/reception */
  46.  
  47. #define    COM_VERIFY    1    /* Used for verifying the condition of the COM port from COM_INIT() */
  48. #define    COM_NO_VERIFY    0    /* Used for not verifying the condition of the COM port from COM_INIT() */
  49.  
  50.  
  51. /**************************************************************************************************
  52. *
  53. *        Status values returned by COM_STATUS()
  54. *        Bit 15 is not defined because that would indicate an error condition
  55. *
  56. **************************************************************************************************/
  57.  
  58. #define    COM_CHANGE_CTS    0x0001            /* Change seen in Clear to Send, will not occur */
  59. #define    COM_CHANGE_DSR    0x0002            /* Change seen in Data Set Ready, will not occur */
  60. #define    COM_CHANGE_RI    0x0004            /* Change seen in Ring Indicator, will not occur */
  61. #define    COM_CHANGE_DCD    0x0008            /* Change seen in Data Carrier Detect, will not occur */
  62. #define    COM_CTS        0x0010            /* Clear to Send asserted */
  63. #define    COM_DSR        0x0020            /* Data Set Ready asserted */
  64. #define    COM_RI        0x0040            /* Ring Indicator asserted */
  65. #define    COM_DCD        0x0080            /* Data Carrier Detect asserted */
  66.  
  67. #define    COM_DATA_READY    0x0100            /* Data ready in input buffer */
  68. #define    COM_DATA_OVERRUN     0x0200            /* Previous byte recv'd was overwritten */
  69. #define    COM_PARITY_ERROR     0x0400            /* Parity error was detected */
  70. #define    COM_FRAME_ERROR    0x0800            /* Transmission is out of sync */
  71. #define    COM_BREAK_DETECT     0x1000            /* BREAK was sent from the remote */
  72. #define    COM_XMIT_EMPTY    0x2000            /* Transmission register is empty */
  73. #define    COM_SHIFT_EMPTY    0x4000            /* Transmission shift register is empty */
  74.  
  75.  
  76. /**************************************************************************************************
  77. *
  78. *            ERROR CONDITIONS
  79. *
  80. **************************************************************************************************/
  81.  
  82. #define    ILLEGAL_COM_PORT    -1            /* COM number not supported */
  83. #define    HARD_COM_ERROR        -2            /* Hardware error occurred during operation */
  84. #define    OUTPUT_QUEUE_FULL    -3            /* Output queue was full */
  85. #define    NOT_ENOUGH_BYTES    -4            /* Not enough bytes in the input queue */
  86. #define    ERR_NO_HANGUP        -9            // The hangup was not successful
  87.  
  88.  
  89. /**************************************************************************************************
  90. *
  91. *                                SPECIAL CHARACTERS
  92. *
  93. **************************************************************************************************/
  94.  
  95. #define    XON        0x11
  96. #define    XOFF    0x13
  97.  
  98.  
  99. /**************************************************************************************************
  100. *
  101. *                            VARIOUS EXTERNAL ROUTINES
  102. *
  103. **************************************************************************************************/
  104.  
  105. extern    unsigned short    Com_Timer_Tick, _Xon_Percent, _Xoff_Percent, Com_Xfer_Timeout, _Cprint_Cn;
  106. extern    unsigned short    _Com_Error_Count[8];
  107. extern    unsigned short    _Com_Cn, _Com_Cprint_Output;
  108. extern    unsigned long    _Com_Total_In, _Com_Total_Out;
  109.  
  110.  
  111. /**************************************************************************************************
  112. *
  113. *                            VARIOUS EXTERNAL ROUTINES
  114. *
  115. **************************************************************************************************/
  116.  
  117. extern    short    com_init( unsigned short, unsigned long, unsigned char, unsigned char, unsigned char, unsigned short );
  118. extern    short    com_set_baud( unsigned short, unsigned long );
  119. extern    short    com_set_datasize( unsigned short, unsigned char, unsigned char, unsigned char, unsigned char );
  120. extern    short    com_start( unsigned short );
  121. extern    short    com_stop( unsigned short );
  122.  
  123. extern    short    com_get_settings( unsigned short, unsigned long *, unsigned char *, unsigned char *, unsigned char * );
  124.  
  125. extern    short    com_out( unsigned short, unsigned char );
  126. extern    short    com_in( unsigned short );
  127.  
  128. extern    short    com_status( unsigned short );
  129. extern    unsigned short    com_qin( unsigned short );
  130. extern    unsigned short    com_qout( unsigned short );
  131. extern    unsigned short    com_ein( unsigned short );
  132. extern    unsigned short    com_eout( unsigned short );
  133.  
  134. extern    short    com_sout( unsigned short, unsigned char far * );
  135. extern    short    com_snout( unsigned short, void far *, unsigned short );
  136. extern    unsigned short    com_sin( unsigned short, unsigned char far * );
  137. extern    unsigned short    com_snin( unsigned short, void far *, unsigned short );
  138.  
  139. extern    short    com_drop_dtr( unsigned short );
  140. extern    short    com_assert_dtr( unsigned short );
  141. extern    short    com_drop_rts( unsigned short );
  142. extern    short    com_assert_rts( unsigned short );
  143. extern    short    com_start_xonxoff( unsigned short );
  144. extern    short    com_stop_xonxoff( unsigned short );
  145. extern    short    com_start_hard( unsigned short );
  146. extern    short    com_stop_hard( unsigned short );
  147.  
  148. extern    short    com_clear_input( unsigned short );
  149. extern    short    com_clear_output( unsigned short );
  150. extern    short    com_set_output( unsigned short, void far *, unsigned short );
  151. extern    short    com_set_input( unsigned short, void far *, unsigned short );
  152. extern    short    com_restore_output( unsigned short );
  153. extern    short    com_restore_input( unsigned short );
  154.  
  155. //extern    short    com_set_dsr_vector( unsigned short, unsigned short (*)() );
  156. //extern    short    com_set_ri_vector( unsigned short, unsigned short (*)() );
  157. //extern    short    com_set_carrier_vector( unsigned short, unsigned short (*)() );
  158. extern    short    com_set_dsr_vector( unsigned short, unsigned char far * );
  159. extern    short    com_set_ri_vector( unsigned short, unsigned char far * );
  160. extern    short    com_set_carrier_vector( unsigned short, unsigned char far * );
  161.  
  162. extern    unsigned short    com_version( void );
  163. extern    short    com_set_port( unsigned short, unsigned short );
  164. extern    short    com_set_irq( unsigned short, unsigned short );
  165.  
  166. extern    short    com_send_command( unsigned short, unsigned char * );
  167. extern    short    com_pulse_dtr( unsigned short, unsigned short );
  168.  
  169. extern    short    cprint( char *, ... );
  170.  
  171. extern    short    com_hangup( unsigned short );
  172.  
  173.